// 引入需要注册的全局组件
import SvgIcon from './SvgIcon/index.vue'
import Pagination from './Pagination/index.vue'
import { App } from 'vue'

// 引入ElementIcon所有图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue'

const allGlobalComponent = {
  SvgIcon,
  Pagination,
}

//对外暴露插件对象
export default {
  // 务必叫做install方法 不可以随便写 外部app.use会自动执行
  install(app: App) {
    //而且会把app应用实例注入进来
    // 因为 ElementPlus跟自己封装的注册全局基本一致 只需要将其合并就可以使用了 Object.assign(allGlobalComponent,ElementPlusIconsVue)
    Object.entries(
      Object.assign(allGlobalComponent, ElementPlusIconsVue),
    ).forEach(([name, component]) => {
      app.component(name, component)
    })
  },
}
